|
|
Typical Usage:
(Examples of a typical usage of the component in user code.
For more information please
see the page Component Code
Typical Usage.)
Assume the component name "RTC1".
(1)
MAIN.C
void main(void)
{
byte chron;
TIMEREC Time;
DATEREC Date;
RTC1_GetTime( &Time );
RTC1_GetDate( &Date );
RTC1_ClearChronograph();
RTC1_EnableChronograph();
chron=RTC1_GetChronograph();
}
(2)
MAIN.C
#include "Events.h"
extern volatile Flags flags;
void main(void)
{
TIMEREC Time;
RTC1_GetTime( &Time ); /* get current time */
/* set alarm one minute later */
RTC1_SetAlarm( Time.Hour, Time.Min+1 );
flags=0;
/* loop until all events occured */
for (;flags.chron & flags.alarm & flags.day \
& flags.hour & flags.minute & flags.second \
& flags.tb1 & flags.tb2;) {
/* user code */
}
}
EVENTS.H
Assume structure Flags is included into module main and events:
typedef struct {
byte chron :1;
byte alarm :1;
byte day :1;
byte hour :1;
byte minute :1;
byte second :1;
byte tb1 :1;
byte tb2 :1;
} Flags;
EVENTS.C
#include "Events.h"
volatile Flags flags=0;
void RTC1_OnAlarm(void)
{
/* set alarm flag in the alarm event handler */
flags.alarm = 1;
}
void RTC1_OnHour(void)
{
/* set hour flag in the hour event handler */
flags.hour = 1;
}
void RTC1_OnMinute(void)
{
/* set minute flag in the minute event handler */
flags.minute = 1;
}
void RTC1_OnSecond(void)
{
/* set second flag in the second event handler */
flags.second = 1;
}
void RTC1_OnTimebase1(void)
{
/* set timebase1 flag in the timebase1 event handler */
flags.tb1 = 1;
}
void RTC1_OnTimebase2(void)
{
/* set timebase2 flag in the timebase2 event handler */
flags.tb2 = 1;
}
void RTC1_OnChronograph(void)
{
/* set chronograph flag in the chronograph event handler */
flags.chron = 1;
}
|